This is the Help file for the clustsim.exe program.
This test program is designed to test a shared SCSI Bus
for functionality that is required for wolfpack systems.
To run this test you must have the following items:

1) A multi-iniator SCSI bus
2) At least one drive on the shared bus
3) Each drive on the bus must have a signature on the
drive so the test can match up the same drive from both
controllers.  To get a signature run windisk on one
node and respond "yes" to the prompt.
4) You must not have cluster software installed on either node
5) You must have Microsoft(r) Windows(r) 2000 or Microsoft(r) Windows NT(r) version 4.0 (SP2). 
6) Both nodes must be able to talk to each other.  You can
ping to test this.
7) You must have the ntlog.dll file in the path on both nodes
8) You must have the clustsim.exe file on both nodes
9) Also on both computers you should not have any logical FT disk sets using
the Windows NT FT disk driver.  Logical FT sets at the SCSI HBA or in a
HW raid cabinet are fine though.  

Note: This test is a destructive test.  It will wipe out
data on all disks on the shared bus that you select the test
to run on.  The default is to run on all shared drives.

After running this test you will have run windisk again to get partitions
and signatures back on the drives in most cases.

The test should run for about two hours per drive on a typical wide
SCSI bus and a Pentium chip that has a minimum speed of 166mhz.  

To start the test run

clustsim /s 

on one node.  This node then becomes the server node.  After this
node is finished looking for shared drives it will prompt you when
to start the test on the other node.  Now run

clustsim /n:node_name

where node_name is the name of the computer you ran clustsim /s on.

Logging of information:

Both nodes of the test will log information into a standard NTlog file.
On the /s node it will be called clustsim_server.log and clustsim_client.log
on the client node.

Testing Overview

This test will search the list of signatures found on both nodes for 
matches.  The test will go through a loop like this:

1) Do basis SCSI commands to get drivelayout, inquiry data, and addressing.

2) Do Write/Read-Verify commands
	a) Pick a random block address
	b) pick a random write length
	c) generate a random string	
	d) write the block to disk with FUA and DPO bits set
	e) read that block in from other initiator and compare bits
	f) issue a verify command

3) Do reserve/release testing
	a) Issue a reserve command from Node A
	b) Try to reserve on node B
	c) Make sure write and read command fail from node B
	d) make sure release command works on Node B
	d) issue a bus reset
	e) Make sure other node B can now reserve disk
	f) make sure test unit ready fails on A
	g) make sure node B can release reservation

#2 and #3 are done for a certain number of iterations that can be
controlled with the /i switch.  Default value can be obtained by
issuing /? from the cmd line.

If you only want to run the test for one loop issue /i:1 for example.

Testing on One Drive Only

If you only want to test on a specific shared drive you can do this also.
You must specify the Physical drive number to use on the client node.  You
would start the server node the same way.  For example:

clustsim /s ( on server node )

clustsim /n:node_name /t:1

Will run the tests only on \\Device\PhysicalDrive1

Running shorter versions of the test

With the other options you can change the amount of time that the
test will run.  The /w and /i and /r switches allow the most
control over this.  If you change these value from their default
the test time is changed.  For example currently the defaults are

i=5 ( 5 iterations )
w=5000 ( 5000 write/read/verify commands per iteration, case #2 above)
r=125 ( 125 reserve/release commands per iteration, case #3 above )

So by changing i from 5->1 you cut the test time to 1/5 approx.

clustsim /s and
clustsim /n:node_name /i:1 ( run on other node ) or
clustsim /n:node_name /i:2 /w:500 or
clustsim /n:node_name /i:4 /r:10

To test only write/Read do the following on 2nd node
clustsim /n:node_name /rn ( means no reserve release commands )

To test only reserve/release do the following on 2nd node
clustsim /n:node_name /wn ( means no read/write commands )


For questions or feedback concerning this tool, please contact rkinput@microsoft.com.
(c) 1985-2000 Microsoft Corporation. All rights reserved.

